package com.truyen.service;

import java.util.List;

import com.truyen.persistence.entity.ChapterTam;
import com.truyen.persistence.entity.TruyenKiemHiep;
import com.truyen.persistence.entity.TruyenMa;
import com.truyen.persistence.entity.TruyenTinhCam;
import com.truyen.persistence.entity.TruyenTranh;
import com.truyen.persistence.entity.TruyenTrinhTham;
import com.truyen.utils.PagingInfo;


public interface ChapterTamService {
	
	// tao moi
	void save(ChapterTam entity);

	//tim theo id
	ChapterTam findById(Long id);

	//lay tat ca
	List<ChapterTam> getAll();

	//tim chapter tam theo column name
	ChapterTam findByProperty(String column, Object value);

	//xoa chapter tam
	void delete(long id);

	//lay danh sach theo truyen va kw , sap xep va phan trang
	List<ChapterTam> getLstChapterTamByTruyen(TruyenTranh truyen, String kwSearch, String sort, String sortBy, PagingInfo pInfo);

	//lay tat ca danh sach chapter tam theo kw , sap xep va phan trang
	List<ChapterTam> getLstAllChapterTam(String kwSearch, String sort, String sortBy, PagingInfo pInfo);

	//lay danh danh sach theo content null tu source by 
	List<ChapterTam> getLstFromSourceBy(int sourceBy);
	
	//lay danh sach chapter tam theo truyen tranh
	List<ChapterTam> getByTruyen(TruyenTranh entity);

	//cap nhat chapter number
	void updateChapterNumber(Long id, float chapterNumberChange);

	//cap nhat linksource
	void updateLinkSource(Long id, String linkSource);

	//cap nhat danh sach chapternumber
	void updateLstChapterNumberBlogTruyen();

	//lay tat ca chapter theo truyen trinh tham
	List<ChapterTam> getByTruyen(TruyenTrinhTham entity);

	//lay tat chapter theo truynh tinh cam
	List<ChapterTam> getByTruyen(TruyenTinhCam entity);

	//lay tat ca chapter theo truyen kiem hiep
	List<ChapterTam> getByTruyen(TruyenKiemHiep entity);
	
	//lay tat ca chapter theo truyen ma
	List<ChapterTam> getByTruyen(TruyenMa entity);
	
	//tim chapter theo truyen va alias
	ChapterTam findAliasvTruyen(TruyenTranh truyen, String alias);

	//tim chapter theo truyen kiem hiep
	ChapterTam findAliasvTruyen(TruyenKiemHiep truyen,
			String alias);
	
	//tim chapter theo truyen trinh tham
	ChapterTam findAliasvTruyen(TruyenTrinhTham truyen,
			String alias);
	
	//tim chapter theo truyen tinh cam
	ChapterTam findAliasvTruyen(TruyenTinhCam truyen,
			String alias);
	
	//tim chapter theo truyen ma
	ChapterTam findAliasvTruyen(TruyenMa truyen, String nameChapterUnsigned);

	//tim danh sach truyen theo sourceBy và truyen not null
	List<ChapterTam> getLstFromSourceByVTruyenNotNull(int sourceBy,
			String truyenNotNull);

	//lay danh sach theo truyen va kw , sap xep va phan trang
	List<ChapterTam> getLstChapterTamByTruyen(TruyenKiemHiep truyen,
			String kwSearch, String sort, String sortBy, PagingInfo pInfo);
	
	//lay danh sach theo truyen va kw , sap xep va phan trang
	List<ChapterTam> getLstChapterTamByTruyen(TruyenTinhCam truyen,
			String kwSearch, String sort, String sortBy, PagingInfo pInfo);
	
	//lay danh sach theo truyen va kw , sap xep va phan trang
	List<ChapterTam> getLstChapterTamByTruyen(TruyenTrinhTham truyen,
			String kwSearch, String sort, String sortBy, PagingInfo pInfo);

	//lay danh sach theo truyen ma va kw , sap xep va phan trang
	List<ChapterTam> getLstChapterTamByTruyen(TruyenMa truyen, String kwSearch,
			String sort, String sortBy, PagingInfo pInfo);
	
}
